package Day011_多线程1.demo02_Thread线程类;

/**
 * @author zhangyan
 * @date 2020/4/28 10:06
 */
public class demo02_继承方式创建 {
    public static void main(String[] args) {
        /*
          1.继承Thread类方式
          2.重写run方法
          3.创建线程对象
          4.使用子类线程对象,调用start方法启动线程,执行任务
        */

        //创建MyThread对象
        MyThread mt = new MyThread("线程A");
        //调用start
        mt.start();//执行子线程i循环


        /*
        可以直接Thread的匿名
        Thread t = new Thread(){
            @Override
            public void run() {
                ...
            }
        };


         */
        //主线程j循环
        for (int j = 0; j <= 100; j++) {
            System.out.println("j循环的第" + j + "次循环");
        }
        //结果i循环 j循环交替混乱执行
        //多线程调度室抢占式调度
        //一个java程序最少有两条线程,(main方法主线程和回收垃圾线程)

        //如果for(j)在触发线程(start)之前,就会执行完j循环,在i循环
    }
}



//创建Thread的子类
class MyThread extends Thread {
    public MyThread() {
        //super();
    }

    public MyThread(String name) {
        super(name);
    }

    @Override
    public void run() {
        //任务
        //  线程对象.getName()
        for (int i = 0; i <= 100; i++) {
            System.out.println(getName()+": i循环的第" + i + "次循环");
        }
    }
}
